import request from '@/utils/request'

/**
 * 获取公告列表
 * @param {Object} params - 查询参数，包含页码、每页数量、关键词等
 * @returns {Promise}
 */
export function getNoticeList(params) {
  return request({
    url: '/notice/page',
    method: 'get',
    params
  })
}

/**
 * 获取公告详情
 * @param {string|number} id - 公告ID
 * @returns {Promise}
 */
export function getNoticeDetail(id) {
  return request({
    url: `/notice/${id}`,
    method: 'get'
  })
}

/**
 * 获取推荐公告列表（如置顶、最新公告）
 * @param {Object} params - 查询参数，可包含limit等
 * @returns {Promise}
 */
export function getRecommendNotices(params) {
  return request({
    url: '/api/notice/recommend',
    method: 'get',
    params
  })
}

/**
 * 标记公告为已读
 * @param {string|number} id - 公告ID
 * @returns {Promise}
 */
export function markNoticeRead(id) {
  return request({
    url: `/api/notice/read/${id}`,
    method: 'post'
  })
}

/**
 * 获取未读公告数量
 * @returns {Promise}
 */
export function getUnreadCount() {
  return request({
    url: '/api/notice/unread/count',
    method: 'get'
  })
}

/**
 * 获取置顶公告列表
 * @param {number} limit - 获取数量
 * @returns {Promise}
 */
export function getTopNotices(limit = 5) {
  return request({
    url: '/notice/page',
    method: 'get',
    params: {
      pageSize: limit,
      pageNum: 1,
      isTop: 1
    }
  })
}

/**
 * 获取最新公告
 * @returns {Promise}
 */
export function getLatestNotice() {
  return request({
    url: '/notice/latest',
    method: 'get'
  })
} 